import { createRouter, createWebHashHistory, type RouteRecordRaw } from "vue-router";

// * 导入所有模块router
const metaRouters = import.meta.globEager("./modules/*.ts");

// * 处理路由
export const routerArray: RouteRecordRaw[] = [];

Object.values(metaRouters).forEach(item => {
	routerArray.push(...item["default"]);
});

const routes: RouteRecordRaw[] = [
	{ path: "/", redirect: { name: "login" } },
	{
		path: "/login",
		name: "login",
		component: () => import("@/views/login/index.vue"),
		//路由元信息
		meta: {
			//是否需要授权，false表示不需要登陆就可以进入
			requiresAuth: false,
			title: "登录页"
		}
	},
	{
		path: "/register",
		name: "register",
		component: () => import("@/views/register/index.vue"),
		//路由元信息
		meta: {
			//是否需要授权，false表示不需要登陆就可以进入
			requiresAuth: false,
			title: "注册页面"
		}
	},

	//把主要的路由单独写出来比如login，其他子路由都放在routerArray展开
	...routerArray,
	{
		// 找不到路由重定向到404页面
		path: "/:pathMatch(.*)",
		redirect: { name: "404" }
	}
];

//这里才是真正处理完要导出的路由实例，前面都是处理
const router = createRouter({
	history: createWebHashHistory(),
	routes,
	strict: false,
	// 切换页面，滚动到最顶部
	//在页面之间导航时控制滚动的函数（to,from,callback）
	scrollBehavior: () => ({ left: 0, top: 0 })
});

export default router;
